0 REM********************************** * TINY EPROMMER V 2.0 * 1 REM* ------------------- * * 1987 RUEDIGER STAHL * 2 REM* HURTENSTR. 20 * * 8138 FRIEDING-ANDECHS * 3 REM* * * * 9 REM********************************** 10 : 20 PRINT"[147]":POKE52,48:POKE56,48:POKE51,0:POKE55,0:POKE46,46:POKE45,150:CLR 30 IFPEEK(49152)=32ANDPEEK(49400)=169THEN50 40 PRINT"[147] TINY EPROMMER V2.0":PRINT" BY RUEDIGER STAHL 41 [153]" HURTENSTR. 20":[153]" 8138 FRIEDING-ANDECHS 45 LOAD"MA.TINY EPROMMER",8,1 50 LM=49152:DR=49296:BL=49464:BS=49514:CO=49606:CL=49716:FI=49848 55 SYS49768 59 REM TYPEN 60 DIMT$(5),AL$(3) 61 T$(0)="2764 / 21 V " 62 T$(1)="27128/ 21 V " 63 T$(2)="27256/12.5 V" 64 T$(3)="8 KB /12.5 V" 65 T$(4)="16 KB/12.5 V" 66 T$(5)="32 KB/ 21 V " 70 AL$(0)=" TURBO SPEED " 71 AL$(1)=" FAST & SECURE " 72 AL$(2)="STANDARD 50 MS" 80 EI%=16 90 IFPEEK(820)<>0THENAL=INT(PEEK(820)/16):TY=PEEK(820)-AL*16 91 IFTY>5THENTY=0 92 IFAL>2THENAL=0 99 : 100 REM * HAUPTMENUE 105 POKE53280,5:POKE53281,0:POKE650,0:SYSCL 110 PRINT"[153]>>> TINY EPROMMER V2.0 <<<"; 120 PRINT"----------------------------------------" 130 PRINT" BITTE WAEHLEN:" 140 PRINTTAB(6)"'F1' = EPROM BRENNEN 145 [153][163]6)"'F3' = TYP/ALLGORITHMUS WAEHLEN 150 PRINTTAB(6)"'F5' = FILES/DIREKTORY 155 [153][163]6)"'F7' = ZURUECK ZU BASIC 160 PRINTTAB(6)"'F2' = EPROM LEERTEST 170 [153][163]6)"'F4' = EPROM AUSLESEN 180 PRINTTAB(6)"'F6' = EPROM VERIFY 190 [153][163]6)"'F8' = TOOLS 200 PRINT"----------------------------------------"; 210 PRINT">>> "T$(TY)" MIT "AL$(AL)" <<[157]"CHR$(148)"<"; 220 T=TY:VP=0:IFT>1ANDT<5THENVP=1 230 IFT>2THENT=T-3 250 REM *** AUSWAHL 260 GETA$:IFA$=""THEN260 270 A=ASC(A$):IFA<133ORA>140THEN260 280 ONA-132GOSUB 1000,2000,3000,4000,5000,6000,7000,8000 390 GOTO100 1000 REM *** BRENNEN 1010 SYSCL 1015 PRINT" BITTE WAEHLEN: 1020 [153][163]6)"'F1' = ZURUECK 1025 PRINTTAB(6)"'F3' = SPEICHERINHALT BRENNEN 1030 [153][163]6)"'F5' = EINZELBYTEPROGRAMMIERUNG 1050 GETA$:IFA$=""THEN1050 1055 A=ASC(A$):IFA<133ORA>138THEN1050 1060 SYSCL 1065 ONA-132GOTO 1100,1200,1300 1100 RETURN 1200 SYSCL:PRINT"SPEICHERINHALT IN EPROM BRENNEN:" 1205 D=8192*2^T-1:GOSUB1500:GOSUB1600 1206 IFE1-A1<>E2-A2THEN1200 1210 PRINT"EPROM-TYP: ";T$(TY) 1220 PRINT"ALLGORITHMUS:";AL$(AL) 1225 GOSUB50050:IFA$="N"THEN1200 1230 SYSCL:PRINT" *** EPROM WIRD GEBRANNT ***" 1240 SYS49920,AL,VP,T,A1,A2,E2 1245 IFPEEK(2)>0THENGOSUB50700 1250 GOSUB50010 1260 RETURN 1300 SYSCL:PRINT"EIN BYTE PROGRAMMIEREN:" 1305 PRINT"EPROMADRESSE (HEX) ? 0000";:A$="0000":GOSUB50120 1310 GOSUB50400:A2=A:IFA<0ORA>8192*2^T-1THEN1300 1315 PRINT"WERT (HEX) ? 00";:A$="00":GOSUB50120:A$="00"+A$ 1320 GOSUB50400:IFA<0ORA>255THEN1300 1340 GOSUB50050:IFA$="N"THEN1300 1350 A1=53247:POKEA1,A:E1=A1:E2=A2 1360 PRINT"EPROM-TYP: ";T$(TY) 1365 PRINT"ALLGORITHMUS:";AL$(AL) 1370 GOSUB50050:IFA$="N"THEN1300 1375 GOSUB1230 1395 GOTO1000 1500 PRINT"ADRESSEN IM COMPUTER (HEX):" 1505 A$="3000":PRINT"ANFANGSADRESSE ? "A$;:GOSUB50120 1510 GOSUB50400:GOSUB50600 1511 A1=A:IFA=0THENPRINT"[145][145][145]":GOTO1505 1515 A=A1+D:GOSUB50600:IFA=0THENA=49151 1516 GOSUB50500 1520 PRINT"ENDADRESSE ? "A$;:GOSUB50120 1530 GOSUB50400:GOSUB50600 1531 IFA1<49152ANDA>57334THENA=0 1540 E1=A:IFA=0ORA8192*2^T-1ORA<0THENPRINT"[145][145][145]":GOTO1605 1615 A=A2+D:IFA>8192*2^T-1THENA=8192*2^T-1 1618 GOSUB50500 1620 PRINT"ENDADRESSE ? "A$;:GOSUB50120 1630 GOSUB50400:E2=A 1635 IFA>8192*2^T-1THENA=A2-1 1640 E2=A:IFA65535THENPRINT"LETZTES BYTE GEHT VERLOHREN":A=65535 3460 GOSUB50050:IFA$="N"THENSYSCL:GOTO3400 3470 SYSBS,N$,G,B,A 3471 IFST<>0THENPRINT" I/O-ERROR":GOSUB50010 3475 GOTO3000 3500 : 3505 PRINT"FLOPPY-BEFEHL:"; 3510 EI%=25:GOSUB50100 3520 OPEN1,8,15,A$:CLOSE1 3600 : 3605 OPEN1,8,15:PRINT"DISK-STATUS: "; 3610 GET#1,A$:PRINTA$;:IF(ST AND64)=0GOTO3610 3615 CLOSE1:GOSUB50010:GOTO3000 3620 : 4000 REM *** BASIC 4005 SYSCL:PRINT"PROGRAMM BENENDEN: 4010 [141]50050:[139]A$[178]"N"[167][142] 4020 [158]49816:[128]:[138] 5000 [143] *** EPROM LEERTEST 5010 [158]CL:[153]"EPROM LEERTEST: (VERGLEICH MIT $FF) 5020 GOSUB50050:IFA$="N"THENRETURN 5030 SYS49929,T,0,0,8192*2^T 5035 IFPEEK(2)=15THENPRINT" EPROM NICHT GELOESCHT !":GOSUB50700 5036 IFPEEK(2)=0THENPRINT" EPROM GELOESCHT !" 5040 GOSUB50010:RETURN 6000 REM *** EPROM AUSLESEN 6010 SYSCL 6015 PRINT" BITTE WAEHLEN: 6020 [153][163]6)"'F1' = ZURUECK 6025 PRINTTAB(6)"'F3' = EPROMINHALT IN COM- 6026 [153][163]13)"PUTER EINLESEN 6030 PRINTTAB(6)"'F5' = EINZELBYTEAUSLESE 6050 [161]A$:[139]A$[178]""[167]6050 6055 A[178][198](A$):[139]A[179]133[176]A[177]135[167]6050 6060 [158]CL 6070 [145]A[171]132[137]6100,6200,6300 6100 [142] 6200 [158]CL:[153]"EPROMINHALT IN COMPUTER EINLESEN: 6205 D=8192*2^T-1:GOSUB1600:GOSUB1500 6206 IFE1-A1<>E2-A2THEN6200 6225 GOSUB50050:IFA$="N"THEN6200 6230 SYS49923,T,A1,A2,E2 6240 GOSUB50010:RETURN 6300 SYSCL:PRINT"EIN BYTE AUSLESEN: 6305 [153]"EPROMADRESSE (HEX) ? 0000_CMD";:A$[178]"0000":[141]50120 6310 [141]50400:A2[178]A:[139]A[179]0[176]A[177]8192[172]2[174]T[171]1[167]6300 6340 [141]50050:[139]A$[178]"N"[167]6300 6350 A1[178]53247:[158]49923,T,A1,A2,A2 6355 A[178][194](A1):[141]50500:[153]"WERT:";[194](A1);"= $";A$ 6360 [141]50010:[137]6000 7000 [143] *** EPROM VERIFY 7100 [158]CL:[153]"EPROMINHALT MIT COMPUTER VERGLEICHEN: 7105 D=8192*2^T-1:GOSUB1600:GOSUB1500 7106 IFE1-A1<>E2-A2THEN7100 7125 GOSUB50050:IFA$="N"THEN7100 7130 SYS49926,T,A1,A2,E2 7135 IFPEEK(2)=15THENPRINT" VERIFY ERROR !":GOSUB50700:GOTO7140 7136 PRINT" EPROMINHALT CORRECT !" 7140 GOSUB50010:RETURN 8000 REM *** TOOLS 8010 SYSCL 8015 PRINT" BITTE WAEHLEN:" 8020 PRINTTAB(6)"'F1' = ZURUECK 8025 [153][163]6)"'F3' = MODULGENERATOR 8030 PRINTTAB(6)"'F5' = TINY-MON 8035 [153][163]6)"'F7' = SPEICHERBER. VERSCHIEBEN 8040 PRINTTAB(6)"'F2' = SPEICHERBER. FUELLEN 8050 [161]A$:[139]A$[178]""[167]8050 8055 A[178][198](A$):[139]A[179]133[176]A[177]137[167]8050 8060 [158]CL 8065 [145]A[171]132[137] 8100,8200,8300,8110,8120 8100 [142] 8110 [141]8450:[137]8000 8120 [141]8600:[137]8000 8200 [158]CL:[153]" MODULSTARTGENERATOR WIRD NACHGELADEN. 8210 GOSUB50050:IFA$="N"THENRETURN 8220 SYS49816 8230 LOAD"MODULGEN. V2.0",8 8300 SYSCL:POKE650,128:AD=12288:PRINT" TINY-MON: 8305 [153]" 'F1' = ZURUECK 8308 PRINT" 'F3' = TRANSVER 8309 [153]" 'F4' = SPEICHERBEREICH FUELLEN 8310 PRINT" 'F5'/'F7';'F6'/'F8';CRSR = SCROLL 8315 [153]" RETURN = WERT ABSPEICHERN 8350 SYSLM,AD 8360 PRINT"[145][145][145][145]_[157][157][157]"; 8370 GETA$:IFA$=""THEN8370 8371 IFA$="[133]"THENPOKE650,0:RETURN 8372 IFASC(A$)>47ANDASC(A$)<58THEN8395 8373 IFASC(A$)>64ANDASC(A$)<71THEN8395 8374 IFASC(A$)=13THEN8400 8378 IFA$="[134]"THENGOSUB8450:GOTO8300 8379 IFA$="[138]"THENGOSUB8600:GOTO8300 8380 IFA$="[135]"THENAD=AD-80 8381 IFA$="[136]"THENAD=AD+80 8382 IFA$="[139]"THENAD=AD-1024 8383 IFA$="[140]"THENAD=AD+1024 8384 IFA$="[145]"THENAD=AD-8 8385 IFA$=""THENAD=AD+8 8386 IFA$=""THENAD=AD+1 8387 IFA$="[157]"THENAD=AD-1 8388 IFAD<0THENAD=65535 8389 IFAD>65535THENAD=0 8390 W$="":GOTO8350 8395 IFW$=""THENW$=" " 8398 W$=W$+A$:IFLEN(W$)>2THENW$=RIGHT$(W$,2) 8399 PRINTW$"[157][157]";:GOTO8370 8400 IFW$=""THEN8410 8401 IFLEFT$(W$,1)=" "THENW$="0"+RIGHT$(W$,1) 8405 A$="00"+W$:GOSUB50400:POKEAD+16,A 8410 AD=AD+1:W$="":GOTO8350 8420 : 8450 REM TRANSVER 8455 SYSCL 8460 PRINT" TRANSVER (HEX):" 8465 PRINT" VON: ";:GOSUB50100:IFA$=""THENRETURN 8470 GOSUB50400:A1=A:IFA<0THEN8450 8475 PRINT" BIS: ";:GOSUB50100:IFA$=""THENRETURN 8480 GOSUB50400:E1=A:IFA<0THEN8450 8485 PRINT" NACH:";:GOSUB50100:IFA$=""THENRETURN 8490 GOSUB50400:A2=A:IFA<0THEN8450 8500 A$="06":PRINT" SPEICHERKONFIGURATION (AUCH HEX): ";A$;:EI%=2 8501 GOSUB50120:IFA$=""THENRETURN 8505 A$="00"+A$:GOSUB50400:IFA<0THEN84505 8540 E1=E1+1:IFE1>65535THENE1=E1-65536 8550 SYSCO,A1,E1,A2,A 8560 RETURN 8600 REM FILL 8605 SYSCL 8610 PRINT" SPEICHERBEREICH FUELLEN (HEX):" 8615 PRINT" (GREIFT IMMER AUF RAM ZU !) 8620 [153]" VON: ";:[141]50100:[139]A$[178]""[167][142] 8630 [141]50400:A1[178]A:[139]A[179]0[167]8600 8640 [153]" BIS: ";:[141]50100:[139]A$[178]""[167][142] 8650 [141]50400:E1[178]A:[139]A[179]0[167]8600 8660 A$[178]"FF":[153]" WERT:";A$;:EI%[178]2 8665 [141]50120:[139]A$[178]""[167][142] 8670 A$[178]"00"[170]A$:[141]50400:[139]A[179]0[167]8600 8680 E1[178]E1[170]1:[139]E1[177]65535[167]E1[178]E1[171]65536 8690 [158]FI,A1,E1,A 8695 [142] 8700 : 50000 [143] *** UNTERROUTINEN 50010 [143] AUF TASTENDRUCK WARTEN 50020 [151]198,0 50025 [139][194](214)[177]21[167][153]"" 50030 [153]:[153]"  T A S T E D R U E C K E N " 50045 [146]198,1,0:[151]198,0:[142] 50050 [143] EINGABE OK ? 50060 [151]198,0 50070 [153]:[153]"  A L L E S OCLOSEK ACLOSEY (J/N) ? WAIT" 50075 [146]198,1,0:[161]A$ 50080 [139]A$[179][177]"J"[175]A$[179][177]"N"[167]50075 50085 [142] 50100 [143] INPUT VON 16 ZEICHEN 50110 A$[178]"": 50120 [153]"_CMD";:[161]B$:[139]B$[179][177]""[167]50130 50122 [129]A[178]0[164]80:[130]:[153]"_WAITCMD"; 50125 [161]B$:[139]B$[179][177]""[167]50130 50127 [129]A[178]0[164]80:[130]:[137]50120 50130 [139][198](B$)[178]13[167][153]"_":EI%[178]16:[142] 50140 [139][198](B$)[177]31[175][198](B$)[179]128[167]50200 50150 [139][198](B$)[177]161[167]50200 50160 [139]B$[179][177][199](20)[175]B$[179][177]"CMD"[167]50120 50170 [139][195](A$)[179]1[167]50120 50180 A$[178][200](A$,[195](A$)[171]1) 50190 [153]" CMDCMD_CMD"; 50195 [137]50120 50200 [139][195](A$)[179]EI%[167]50300 50210 [153]" CMDCMD"; 50220 A$[178][200](A$,[195](A$)[171]1) 50300 A$[178]A$[170]B$ 50310 [153]B$;"_CMD"; 50350 [137]50120 50400 [143] HEX IN DEZ (B$ IN B) 50410 A[178][171]1:[139][195](A$)[177]4[176][195](A$)[179]1[167][142] 50420 [129]X[178]1[164][195](A$) 50430 Z[178][198]([202](A$,X,1)) 50440 [139]47[179]Z[175]Z[179]58[167]Z[178]Z[171]48:[137]50470 50450 [139]Z[179]65[176]Z[177]71[167]A[178][171]1:X[178]4:[130]:[142] 50460 Z[178]Z[171]55 50470 A[178]A[170]Z[172]16[174]([195](A$)[171]X) 50490 [130]:A[178]A[170]1:[142] 50500 [143] DEZ IN HEX (A IN A$) 50510 A$[178]"":[129]X[178]3[164]0[169][171]1:W[178][181](A[173]16[174]X) 50520 A[178]A[171]W[172]16[174]X:[139]W[177]9[167]W[178]W[170]7 50530 A$[178]A$[170][199](W[170]48) 50540 [130]:[142] 50600 [143] A ZULAESSIG ? 50610 [139]A[177]49151[175]A[179]57344[167]A[178]0 50620 [139]A[179]3[172]4096[176]A[177]65535[167]A[178]0 50640 [142] 50700 [143] AKTUELLE ADRESSE 50710 A[178][194](169)[170][194](170)[172]256:[153] 50720 [153]" EPROMADRESSE:";A;:[141]50500:[153]" = $";A$ 50750 [142] 60000 :